package _Banque._TUN;

import _Banque.CompteBancaire;
import _Banque.Titulaire;
import _Banque._Banque;
import _Exception.BUException;
import _Exception.IPException;
import _Tests.Tests;
import _Banque.Banque;

//IUT de Nice / Departement informatique / Module APO Java
//Annee 2011_2012 - TP_Banque
//
//Classe CompteBancaire - Tests unitaires de la méthode executer.
//           (cas nominaux)
//
//Auteur : J.COLIN & N.NAGY
//
public class T_CompteBancaire_N3_2 {
     

     public static void main (String[] args) throws IPException, BUException{

                Tests.Begin("_Banque.CompteBancaire", "1..0");
                Banque banque = new Banque("S2D","12345", "IUT Info", "01234567891011");
                String adresse_1= "Imm. Les Magnolias Bat. 2, 8 Bd Napoleon III - NICE (06000)";
                String adresse_2= "Villa Beau Sejour, 115 Av. de la Grande Armee - PARIS (75000)";
                
                Titulaire dupuy = new Titulaire("DUPUY", "melanie", "1978/04/25", adresse_1);
                Titulaire durand = new Titulaire("Durand", "Paul", "1981/01/03",  adresse_2);
                
                CompteBancaire cpt_1 = new CompteBancaire(banque, dupuy);
                CompteBancaire cpt_2 = new CompteBancaire(banque, durand);
                
                Tests.Design("Controle de la methode dateDerniereOperation", 3); {
                        
                        Tests.Case("Cas d'une seule operation"); {
                                
                                CompteBancaire cpt = new CompteBancaire(banque, dupuy);
                                
                                cpt.executer("Guichet 322455", 'V', 200);
                                
                                Tests.Unit(200.0f, cpt.getSoldeCompte());
                                Tests.Unit(_Banque.dateCourante(), cpt.getDateDerniereOperation());
                         
                      } 
                        
                        Tests.Case("Cas de plusieurs operations"); {
                                
                        cpt_1.executer("Guichet 322455", 'V', 200);  
                        cpt_1.executer("Guichet 322455", 'V', 320.5f);  
                        cpt_1.executer("Facture 2009-29", 'R', 400);  
                        cpt_1.executer("Guichet 322455", 'V',  100);  
                             
                        Tests.Unit(_Banque.dateCourante(),cpt_1.getDateDerniereOperation());

                        cpt_2.executer("Guichet 760999", 'V', 350);  
                        cpt_2.executer("Facture 2009-04", 'R', 300);

                        Tests.Unit(_Banque.dateCourante(),cpt_2.getDateDerniereOperation());
                        }
                        
                        }
                Tests.End();
                }

}
